package com.shijie.newvideo;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * SharedPreferences工具类，存储的文件名设置为“config”
 * 
 * @author LiWeiSong
 * 
 */
public class SpUtil {

	private static SharedPreferences sp = null;
	private static final String SP_NAME = "config";

	/**
	 * 根据传入的key，获取对应的boolean值
	 * 
	 * @return
	 */
	public static boolean getBoolean(Context ctx, String key, boolean defValue) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		return sp.getBoolean(key, defValue);
	}

	/**
	 * 将指定的key和boolean类型的value存放到sp中
	 * 
	 * @param ctx
	 * @param key
	 * @param value
	 */
	public static void putBoolean(Context ctx, String key, boolean value) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		sp.edit().putBoolean(key, value).commit();
	}

	/**
	 * 根据指定的key，获取字符串
	 * 
	 * @param ctx
	 * @param key
	 * @param defValue
	 * @return
	 */
	public static String getStr(Context ctx, String key, String defValue) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		return sp.getString(key, defValue);
	}
	public static String getStr(Context ctx, String key) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		return sp.getString(key, "");
	}
	/**
	 * 将指定的key和String 类型的value存放到sp中
	 * 
	 * @param ctx
	 * @param key
	 * @param value
	 */
	public static void putStr(Context ctx, String key, String value) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		sp.edit().putString(key, value).commit();
	}

	public static void removePreference(Context context, String key) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);;
		SharedPreferences.Editor editor = sharedPreferences.edit();
		editor.remove(key);
		editor.commit();
	}
	/**
	 * 根据指定的key，获取存储的float值
	 * 
	 * @param ctx
	 * @param key
	 * @param defValue
	 * @return
	 */
	public static float getFloat(Context ctx, String key, float defValue) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		return sp.getFloat(key, defValue);
	}

	/**
	 * 将传入的key和float类型的value，放入sp中
	 * 
	 * @param ctx
	 * @param key
	 * @param value
	 */
	public static void putFloat(Context ctx, String key, float value) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		sp.edit().putFloat(key, value).commit();
	}

	/**
	 * 根据传入的key和int类型的value，存放到sp中
	 * 
	 * @param ctx
	 * @param key
	 * @param value
	 */
	public static void putInt(Context ctx, String key, int value) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		sp.edit().putInt(key, value).commit();
	}
	public static void putIntSys(Context ctx, String key, int value) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		sp.edit().putInt(key, value).apply();
	}
	/**
	 * 根据指定的key，获取对应的int类型的值
	 * 
	 * @param ctx
	 * @param key
	 * @param defValue
	 * @return
	 */
	public static int getInt(Context ctx, String key, int defValue) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		return sp.getInt(key, defValue);

	}


	/**
	 * 根据指定的key，获取存储的float值
	 *
	 * @param ctx
	 * @param key
	 * @param defValue
	 * @return
	 */
	public static Long getLong(Context ctx, String key, Long defValue) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		return sp.getLong(key, defValue);
	}

	/**
	 * 将传入的key和float类型的value，放入sp中
	 *
	 * @param ctx
	 * @param key
	 * @param value
	 */
	public static void putLong(Context ctx, String key, Long value) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		sp.edit().putLong(key, value).commit();
	}

	public static void putLongSys(Context ctx, String key, Long value) {
		if (sp == null)
			sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

		sp.edit().putLong(key, value).apply();
	}
}
